這篇在說理論,說明何謂「Generalization」,以及要訓練機器學習的時候有什麼原則。
(本篇是Generalization)
何謂「泛化(Generalization)」,意思是我們的設計模組可以應對未來的數據,也就是可以被廣泛使用卻仍在我們模型範圍內,也就是他的適應性很好,這就是泛化。
我們在訓練模型的時候,會調整一些超參數來讓我們的模型可以適應其他狀況。但現實是,有時候我們誤差值很小,但仍然無法適應新的數據,這就是我們模型過度擬合了其訓練數據的特性。
Ockham是14世紀的修道士和哲學家,他認為科學家應該更喜歡簡單的公式或理論,而不是更複雜的公式或理論。
在現代我們已經將奧漢姆剃刀正式化為統計學習理論和計算學習理論領域,並且建立了泛化界限,而基於以下兩點對模型泛化為新數據的能力進行統計描述:
機器學習模型旨在對以前看不見的新數據做出良好的預測。但是,如果您要從數據集中構建模型,那麼如何獲得以前看不見的數據?好的,一種方法是將數據集分為兩個子集:
而在機器學習中,我們主要是為了看不見的新數據做良好的預測。那要如何在數據中建立模型,並且達到預期呢?在此,教學有說的可以把數據集分成兩個子集:訓練集
和測試集
,分別進行模型的訓練,以及模型的測試。訓練出我們需要的模型公式,然後再經由測試測試集
去調整我們的參數,讓他們得以做出好的預期。
有了這兩個子集,需要再結合三個基本假設來讓模型泛化:
聽起來很複雜,簡單來說就是「簡單化」,把很多數據變化降到最低,也就是在實驗室內的實驗,大部分的參數都是固定不變的。
例如空氣中氧氣比例約「21%」,為了測量這樣的數據,我們把自己關在實驗室內,在相同的空氣下,不會有特殊狀況產生,不會有水氣過多的情況發生,這就是i.i.d。然後我們每次取得的資料不會相干擾,我們在實驗室內取得一杯空氣,然後再倒出來,再取第二杯,這樣的過程數據不會相互干擾,也就是stationary。最後我們的數據版本都相同,都是同一個時空同一個空間的空氣,在實驗室內不會有外來的空氣影響,這就是same distribution精神。
也就是在「實驗室做實驗」。